package com.s63.ssm.dao;

import com.s63.ssm.entity.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserMapper {
    SysUser getByAccount(String account);

    int count();
    List<SysUser> getAll();
    int add(SysUser user);
    int del(Integer id);
    int update(SysUser user);

    /**
     * 一个参数动态查询也需要使用@Param命名
     * @param realName
     * @return
     */
    List<SysUser> getByRealName(@Param("realName") String realName);

    int getByRealNameAndRoleIdCount(@Param("nickName") String realName,
                                         @Param("roleId") Integer roleId);

    List<SysUser> getByRealNameAndRoleId(@Param("nickName") String realName,
                                         @Param("roleId") Integer roleId,
                                         @Param("from") int from,
                                         @Param("pageSize") int pageSize);

    List<SysUser> getByUser(SysUser user);

    List<SysUser> getByMap(Map<String, Object> args);

    List<SysUser> getByRealNameAndRoleIdWithChoose(@Param("realName") String realName,
                                         @Param("roleId") Integer roleId);

    List<SysUser> getByRealNameAndRoleIds(@Param("realName") String realName,
                                         @Param("roleIds") Integer[] roleIds);

    List<SysUser> getByRealNameAndRoleIdList(@Param("realName") String realName,
                                            @Param("roleIds") List<Integer> roleIds);

    SysUser getById(Integer id);
}
